home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Freeware 1998 June
/
SGI Freeware 1998 June.iso
/
dist
/
fw_ATxgopher.idb
/
usr
/
freeware
/
src
/
xgopher.1.3
/
markList.c.z
/
markList.c
Wrap
C/C++ Source or Header
|
1998-01-21
|
3KB
|
139 lines
/* markList.c
routines to manage the bookmark list of gopher items. */
/*---------------------------------------------------------------*/
/* Xgopher version 1.3 08 April 1993 */
/* version 1.2 20 November 1992 */
/* version 1.1 20 April 1992 */
/* version 1.0 04 March 1992 */
/* X window system client for the University of Minnesota */
/* Internet Gopher System. */
/* Allan Tuchman, University of Illinois at Urbana-Champaign */
/* Computing and Communications Services Office */
/* Copyright 1992, 1993 by */
/* the Board of Trustees of the University of Illinois */
/* Permission is granted to freely copy and redistribute this */
/* software with the copyright notice intact. */
/*---------------------------------------------------------------*/
#include <stdio.h>
#include "gopher.h"
#include "itemList.h"
static gopherItemList bookmarks = {NULL, NULL};
/* These routines are simply an interface to the gopher item list
management routines in itemList.c. */
/* bookmark list interface routines:
markItem Set a bookmark at an item.
unmarkItem Remove a bookmarked item.
unmarkItemN Remove the Nth bookmarked item.
unmarkAllItems Remove all bookmarks
getMarkN Return a ptr to Nth bookmarked item
anyMarks Report if the bookmark list is empty as T/F
firstMark Return a pointer to the head of the bookmark list
markListLength return the number of items in the bookmark list
*/
/* markItem
Set a bookmark at an item. */
void
markItem(gi)
gopherItemP gi;
{
if (gi == NULL) return;
if (! itemInList(&bookmarks, gi)) appendItem(&bookmarks, gi);
return;
}
/* getMarkN
return a pointer to the Nth item of the bookmark list
starting with number 0 */
gopherItemP
getMarkN(n)
int n;
{
return getItemN(&bookmarks, n);
}
/* unmarkItem
Remove a bookmarked item. */
void
unmarkItem(gi)
gopherItemP gi;
{
if (gi == NULL) return;
removeItem(&bookmarks, gi);
}
/* unmarkItemN
Remove the Nth bookmarked item. */
void
unmarkItemN(n)
int n;
{
if (n < 0) return;
removeItemN(&bookmarks, n);
}
/* unmarkAllItems
Remove all bookmarks */
void
unmarkAllItems()
{
gopherItemP p;
while ((p = bookmarks.first) != NULL) {
unmarkItem(p);
}
}
/* anyMarks
Report if the bookmark list is empty as T/F */
BOOLEAN
anyMarks()
{
return (bookmarks.first != NULL);
}
/* firstMark
Return a pointer to the head of the bookmark list */
gopherItemP
firstMark()
{
return bookmarks.first;
}
/* markListLength
return the number of items in the bookmark list */
int
markListLength()
{
return itemListLength(&bookmarks);
}